package com.ytjj.qmyx.admin.service;

import com.ytjj.common.api.CommonPage;
import com.ytjj.common.api.CommonResult;
import com.ytjj.qmyx.admin.model.request.*;
import com.ytjj.qmyx.admin.model.response.DynamicCommentReplyResponse;
import com.ytjj.qmyx.admin.model.response.DynamicCommentReponse;
import com.ytjj.qmyx.admin.model.response.DynamicsProductResp;
import com.ytjj.qmyx.mall.model.*;
import com.ytjj.qmyx.users.model.Users;

import java.util.List;

/**
 * @Description
 *
 * @Version 1.0
 * 
 */
public interface DynamicService {

    /**
     * 新增广告图
     *
     * @param adRequest
     * @return
     */
    void addAdImg(AdRequest adRequest);

    /**
     * 获取所有广告图
     *
     * @return
     */
    CommonPage<Banners> getAdImgs(PageRequest pageRequest);

    /**
     * 根据id 定位广告图
     * @param id
     * @return
     */
    Banners positionImg(Integer id);

    /**
     * 更新广告图信息
     *
     * @param adRequest
     * @return
     */
    void updateAdImg(AdRequest adRequest);

    /**
     * 根据广告图类型搜索
     *
     * @param adRequest
     * @return
     */
    CommonPage<Banners> searchByType(AdRequest adRequest);

    /**
     * 增加动态管理
     *
     * @param dynamicRequest
     * @return
     */
    void addDynamic(DynamicRequest dynamicRequest);

    /**
     * 视频动态 通过/不通过
     *
     * @param dynamicRequest
     */
    void videoPass(DynamicRequest dynamicRequest);

    /**
     * 动态推荐
     *
     * @param dynamicRequest
     */
    void dynamicRecommend(DynamicRequest dynamicRequest);

    /**
     * 根据id定位该动态
     *
     * @param id
     * @return
     */
    Dynamic positionDynamic(Integer id);

    /**
     * 更新动态信息
     *
     * @param dynamicRequest
     */
    void editDynamic(DynamicRequest dynamicRequest);


    /**
     * 分页查询动态信息
     *
     * @param dynamicRequest
     * @return
     */
    CommonResult searchDynamic(DynamicRequest dynamicRequest);

    /**
     * 删除选中的动态
     *
     * @param id
     */
    void deleteDynamic(Integer id);

    /**
     * 显示/隐藏 广告图
     *
     * @param adRequest
     */
    void isShowAdImg(AdRequest adRequest);

    /**
     * 新增图床图片
     *
     * @param bedImgRequest
     */
    void addBedImg(BedImgRequest bedImgRequest);

    /**
     * 获取图床图片
     *
     * @param id
     * @return
     */
    Img acquireBedImg(Integer id);

    /**
     * 更新图床信息
     *
     * @param bedImgRequest
     */
    void editBedImg(BedImgRequest bedImgRequest);


    /**
     * 获取图床列表
     *
     * @param bedImgRequest
     * @return
     */
    CommonPage<Img> getBedImgList(BedImgRequest bedImgRequest);


    List<Special> querySpecialList();

    /**
     * 获取动态的评论列表
     * @param dynamicCommentRequest
     * @return
     */
    CommonPage<DynamicCommentReponse> getDynamicCommentList(DynamicCommentRequest dynamicCommentRequest);

    List<DynamicCommentReponse> getChildrenByPid(Integer pid);

    int addDynamicComment(DynamicComment dynamicComment);

    int updateDynamicComment(DynamicComment dynamicComment);

    int deleteDynamicComment(Integer id);

    int updateDynamicCommentStatus(Integer id, Integer status, String remark);

    List<DynamicsProductResp> selectProductByUserId(Integer userId);

    /**
    * 添加或编辑评论
    * v4.2.2
    * @param dynamicComment:
    * @returns: int
    * 
    */
    int addOrEditComment(DynamicComment dynamicComment);


    /**
     * 添加或者编辑回复
     * v4.2.2
     * @param dynamicCommentReply:
     * @returns: int
     * 
     */
    int addOrEditReply(DynamicCommentReply dynamicCommentReply);


    /**
    * 删除评论或回复
    * v4.2.2
    * @param id:
    * @param type:0-评论 1-回复
    * @param reason:删除原因
    * @returns: int
    * 
    */
    int delCommentOrReply(Integer id,Integer type,String reason);

    /**
    * 显示或者隐藏
    * @param id:
    * @param type:0-评论 1-回复
    * @param isShow:
    * @returns: int
    * 
    */
    int showOrHide(Integer id,Integer type, Integer isShow);


    /**
    * 查询动态的评论列表
    * @param dynamicCommentRequest:
    * @returns: com.ytjj.common.api.CommonPage<com.ytjj.qmyx.admin.model.response.DynamicCommentReponse>
    * 
    */
    CommonPage<DynamicCommentReponse> getComments(DynamicCommentRequest dynamicCommentRequest);


    /**
    * 查询评论的回复列表
    * @param dynamicCommentReplyRequest:
    * @returns: com.ytjj.common.api.CommonPage<com.ytjj.qmyx.admin.model.response.DynamicCommentReponse>
    * 
    */
    CommonPage<DynamicCommentReplyResponse> getReplyByComment(DynamicCommentReplyRequest dynamicCommentReplyRequest);


}
